package cn.smile.business.wechat;

import cn.smile.bean.dto.wechat.MediaUploadDTO;
import cn.smile.bean.form.wechat.api.ArticleDraftForm;

public interface IWeChatApiService {

    /**
     * 获取微信公众号授权Token
     *
     * @param appId     微信公众号 AppID
     * @param appSecret 微信公众号 AppSecret
     * @param refresh   true-强制刷新, false-不刷新
     * @return 授权访问Token
     */
    String getAccessToken(String appId, String appSecret, Boolean refresh);

    /**
     * 获取微信公众号授权Token
     *
     * @param appId   微信公众号 AppID
     * @param refresh true-强制刷新, false-不刷新
     * @return 授权访问Token
     */
    String getAccessToken(String appId, Boolean refresh);

    /**
     * 写草稿
     *
     * @param form 草稿参数
     * @return 草稿ID
     */
    String pushArticle(ArticleDraftForm form);

    /**
     * 文件URL下载并上传微信
     *
     * @param fileUrl 文件URL
     * @param appId   微信AppID
     * @return 微信返回结果
     */
    MediaUploadDTO uploadMedia(String fileUrl, String appId);

    /**
     * 轮询发布结果
     */
    void pollingPublish();
}
